#pragma once

#include "Game/Scene/Entity.h"
#include "Render/Buffer/VertexBuffer.h"
#include "Render/Buffer/IndexBuffer.h"

class LocalEntity : public Entity
{
public:

	LocalEntity(entt::entity handle, GameScene* gameScene) : Entity(handle, gameScene) {};

protected:

	virtual void ReleaseResource() override;

	virtual void OnTick(float deltaTime) override;

public:


	bool mHasNormal;



	std::string mAlbedoPath;

	std::string mNormalPath;

	std::string mMetallicPath;

	std::string mRoughnessPath;





	RefCountPtr<RHITexture> mAlbedoImage;

	RefCountPtr<RHISampler> mAlbedoSampler;

	RefCountPtr<RHITexture> mNormalImage;

	RefCountPtr<RHISampler> mNormalSampler;

	RefCountPtr<RHITexture> mMetallicImage;

	RefCountPtr<RHISampler> mMetallicSampler;

	RefCountPtr<RHITexture> mRoughnessImage;

	RefCountPtr<RHISampler> mRoughnessSampler;



	RefCountPtr<RHIBuffer> mUboBuffer;



	DescriptorMask mDescriptorMask;




	RefCountPtr<VertexBuffer> mVertexBuffer;

	RefCountPtr<IndexBuffer> mIndexBuffer;
};